// 角色管理模块的接口
import request from "@/utils/request"
import type { AllRoleListResponseData, RoleData, AllMenuListResponseData } from "./type"
// 枚举地址
enum API {
   // 获取全部职位的接口
   ALLROLE_URL = '/admin/acl/role/',
   // 新增职位的接口地址
   ADDROLE_URL = '/admin/acl/role/save',
   // 更新已有职位的信息
   UPDATEROLE_URL = '/admin/acl/role/update',
   // 获取全部菜单和按钮的数据
   ALLPERMISSION_URL = '/admin/acl/permission/toAssign/',
   // 给对应的职位分配权限
   SETPERMISSION_URL = '/admin/acl/permission/doAssign/?',
   // 删除已有的职位
   DELETEROLE_URL = '/admin/acl/role/remove/'
}

// 获取全部角色的请求方法
export const reqAllRoleList = (page: number, limit: number, roleName: string) => request.get<any, AllRoleListResponseData>(API.ALLROLE_URL + `${page}/${limit}/?roleName=${roleName}`)
// 新增或修改职位的方法
export const reqAddOrUpdateRole = (data: RoleData) => {
   if (data.id) {
      // 更新职位信息
      return request.put<any, any>(API.UPDATEROLE_URL, data)
   } else {
      // 新增职位信息
      return request.post<any, any>(API.ADDROLE_URL, data)
   }
}
// 获取全部菜单与按钮权限的方法
export const reqAllMenuList = (roleId: number) => request.get<any, AllMenuListResponseData>(API.ALLPERMISSION_URL + roleId)
// 给相应职位分配权限的方法
export const reqSetPermission = (roleId: number, permissionId: number[]) => request.post<any, any>(API.SETPERMISSION_URL + `roleId=${roleId}&permissionId=${permissionId}`)
// 删除已有职位的方法
export const reqDeleteRole = (roleId: number) => request.delete<any, any>(API.DELETEROLE_URL + roleId)